diff -r -w --unif=2 calls/Makefile calls-amiga/Makefile
--- calls/Makefile	Thu May  7 13:42:35 1992
+++ calls-amiga/Makefile	Thu Nov 30 14:42:26 1995
@@ -8,7 +8,11 @@
 L=
 
-CC=gcc -DMACRO_BSTRING
+# Options:
+# -DBADCALLOC		if calloc doesn't zero mem
+# -DOLD_BROKEN_SPRINTF	if your sprintf returns char * instead of int,
+#			eg. on SunOS
+CC=gcc
 INCLUDE=
-DEBUG=	-O
+DEBUG=
 CDEFS= 
 CFLAGS=	${DEBUG} ${CDEFS} ${INCLUDE}
@@ -22,7 +26,7 @@
 
 calls: ${OBJ}
-	${CC} -o $@ ${CFLAGS} ${OBJ}
+	${CC} -s -o $@ ${CFLAGS} ${OBJ}
 
-clean: FRC
+clean:
 	rm -f Makefile.bak calls *.o a.out core errs tags
 
Only in calls: calls
diff -r -w --unif=2 calls/main.c calls-amiga/main.c
--- calls/main.c	Thu May  7 13:39:19 1992
+++ calls-amiga/main.c	Thu Nov 30 14:45:45 1995
@@ -10,5 +10,8 @@
 #include <errno.h>
 #include <strings.h>
-
+#ifdef __amigados__
+#include <stdlib.h>
+#include <unistd.h>
+#endif
 #include "scan.h"
 #include "getopt.h"
@@ -33,5 +36,9 @@
 	*pchProg,		/* argv[0]				*/
 	cppcommand[1024] =	/* cpp command string			*/
+#ifndef __amigados__
 		"/lib/cpp -P ";
+#else
+		"/bin/gcc -E -P ";
+#endif
 static HASH
 	*activelist[MAXDEPTH];	/* list of current output names		*/
@@ -217,4 +224,5 @@
 				iWidth = PAPERWIDTH;
 			break;
+#ifdef OLD_AND_BROKEN_SPRINTF
 		case 'D':
 			strcat(cppcommand, (const char *)
@@ -229,4 +237,18 @@
 						sprintf(sbTemp, "-U%s ", optarg));
 			break;
+#else
+		case 'D':
+			sprintf(sbTemp, "-D%s ", optarg);
+			strcat(cppcommand,sbTemp);
+			break;
+		case 'I':
+			sprintf(sbTemp, "-I%s ", optarg);
+			strcat(cppcommand,sbTemp);
+			break;
+		case 'U':
+			sprintf(sbTemp, "-U%s ", optarg);
+			strcat(cppcommand,sbTemp);
+			break;
+#endif /* sprintf */
 		case '?':
 		case 'h':
diff -r -w --unif=2 calls/scan.c calls-amiga/scan.c
--- calls/scan.c	Thu May  7 13:34:25 1992
+++ calls-amiga/scan.c	Tue Nov 28 15:21:14 1995
@@ -10,4 +10,7 @@
 #include <stdio.h>
 #include <strings.h>
+#ifdef __amigados__
+#include <stdlib.h>
+#endif
 #define strsave(X)	strcpy((char *)malloc(strlen((X))+1), (X))
 
@@ -20,14 +23,17 @@
 	{nilHASH, nilHASH};
 static char 
-	AUTO[] = "auto",	BREAK[] = "break",	CASE[] = "case",
-	CHAR[] = "char",	CONTINUE[] = "continue",DEFAULT[] = "default",
-	DO[] = "do",		DOUBLE[] = "double",	ELSE[] = "else",
-	ENUM[] = "enum",	EXTERN[] = "extern",	FLOAT[] = "float",
-	FOR[] = "for",		FORTRAN[] = "fortran",	GOTO[] = "goto",
-	IF[] = "if",		INT[] = "int",		LONG[] = "long",
+	ASM[] = "asm",          AUTO[] = "auto",        BREAK[] = "break",
+	CASE[] = "case",        CHAR[] = "char",        CONST[] = "const",
+	CONTINUE[] = "continue",DEFAULT[] = "default",  DO[] = "do",
+	DOUBLE[] = "double",    ELSE[] = "else",        ENUM[] = "enum",
+	EXTERN[] = "extern",    FLOAT[] = "float",      FOR[] = "for",
+	FORTRAN[] = "fortran",  GOTO[] = "goto",        IF[] = "if",
+	INT[] = "int",          LONG[] = "long",
 	REGISTER[] = "register",RETURN[] = "return",	SHORT[] = "short",
-	SIZEOF[] = "sizeof",	STATIC[] = "static",	STRUCT[] = "struct",
-	SWITCH[] = "switch",	TYPEDEF[] = "typedef",	UNION[] = "union",
-	UNSIGNED[] = "unsigned",VOID[] = "void",	WHILE[] = "while";
+	SIGNED[] = "signed",    SIZEOF[] = "sizeof",    STATIC[] = "static",
+	STRUCT[] = "struct",    SWITCH[] = "switch",
+	TYPEDEF[] = "typedef",  UNION[] = "union",
+	UNSIGNED[] = "unsigned",VOID[] = "void",
+	VOLATILE[] = "volatile",WHILE[] = "while";
 
 HASH *
@@ -149,9 +155,9 @@
 {
 	static char *keywords[] = {
-		AUTO, BREAK, CASE, CHAR, CONTINUE, DEFAULT,
+		ASM, AUTO, BREAK, CASE, CHAR, CONST, CONTINUE, DEFAULT,
 		DO, DOUBLE, ELSE, ENUM, EXTERN, FLOAT, FOR,
 		FORTRAN, GOTO, IF, INT, LONG, REGISTER,
-		RETURN, SHORT, SIZEOF, STATIC, STRUCT, SWITCH,
-		TYPEDEF, UNION, UNSIGNED, VOID, WHILE, (char *)0
+		RETURN, SHORT, SIGNED, SIZEOF, STATIC, STRUCT, SWITCH,
+		TYPEDEF, UNION, UNSIGNED, VOID, VOLATILE, WHILE, (char *)0
 	};
 	register int i = 0;
@@ -182,7 +188,7 @@
 {
 	static char *which[] = {	/* keywords mark a declaration	*/
-		AUTO, CHAR, STATIC, DOUBLE, ENUM, EXTERN, FLOAT, INT,
-		LONG, REGISTER, SHORT, STATIC, STRUCT, TYPEDEF, UNION,
-		UNSIGNED, VOID, (char *) 0};
+		AUTO, CHAR, CONST, DOUBLE, ENUM, EXTERN, FLOAT, INT,
+		LONG, REGISTER, SHORT, SIGNED, STATIC, STRUCT, TYPEDEF, UNION,
+		UNSIGNED, VOID, VOLATILE, (char *) 0};
 	register char **psb = which;
 
